package com.fhzn.boss.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fhzn.boss.entity.Label;
import com.fhzn.boss.web.request.LabelQueryRequest;
import com.fhzn.boss.web.request.LabelsOpRequest;

import java.util.List;

/**
 * @author 老顾
 * @apiNote
 * @since 2024/3/25
 */
public interface LabelService {

    /**
     * 根据应用编码获取标签
     *
     * @param appCode 应用编码
     * @return 标签列表
     */
    List<Label> labelSetBasedOnAppcode(String appCode);

    /**
     * 分页查询标签
     *
     * @param request 查询参数
     * @return 标签列表
     */
    Page<Label> labelsWithPage(LabelQueryRequest request);

    /**
     * 添加标签
     *
     * @param request 标签参数
     * @return 添加结果
     */
    Integer addLabels(LabelsOpRequest request);

    /**
     * 更新标签
     *
     * @param request 标签参数
     * @return 更新结果
     */
    Integer updateLabels(LabelsOpRequest request);

    /**
     * 删除标签
     *
     * @param id 标签id
     */
    void deleteLabels(Integer id);

    /**
     * 导入标签
     *
     * @param data 数据
     * @throws JsonProcessingException 异常
     */
    void importLabels(String data) throws JsonProcessingException;

}
